The subject matter disclosed herein relates to a method for managing video playback for users during video streaming. More specifically, a method and apparatus for using a server to generate per-user manifest file updates for controlling video playback is disclosed.
Video streaming allows video content to be delivered to a video player via the internet. The video content is a video signal generated by a content provider for distribution to video consumers. The video signal may be provided in an uncompressed file format, such as a serial digital interface (SDI) format, or in a compressed format, such as a Moving Picture Experts Group (MPEG) file format or Transport Stream (TS) file format. The video signal is sent to an encoder which converts the file into a live streaming signal. The live streaming signal is preferably a segmented data stream that may be transmitted using standard Hypertext Transport Protocol (HTTP) over the internet. The live streaming signal may include multiple streams, where each stream may have a different data rate and/or different resolution.
Two common formats for the live streaming signal include HTTP Live Streaming (HLS) implemented by Apple® and MPEG-Dynamic Adaptive bitrate Streaming over HTTP (MPEG-DASH) implemented, for example, by web browsers such as Chrome®, Microsoft Edge®, and Firefox®. In addition to the segmented data stream, the encoder generates a manifest file. The manifest file contains information for a video player to play the segmented data stream such as the data rate and resolution of each stream and a playlist providing an address from which the video content may be retrieved. Historically, the encoder has generated a single manifest file for each encoded video signal, where the manifest file is distributed along with the streaming signal.
The live streaming signal and the manifest file are stored in one or more Content Delivery Networks (CDN). Each CDN includes a number of edge servers which store the streaming signal and manifest file until requested by a video player. When the streaming signal is provided to multiple CDNs, the CDNs may be in different geographic locations, such as the West Coast, East Coast, or Midwest. Each video player may select a CDN based, among other things, on its geographic proximity in order to reduce transmission latencies.
The video player may be any suitable electronic device to receive the streaming signal such as a desktop computer, a television, a laptop computer, a tablet, or a mobile phone. A user initiates a request to view desired video content on the video player. The video player includes video management software executing on the video player which has knowledge of the address of the CDN and which may provide a list of video content stored on the CDN to the user. After the user has selected a desired video, the video player, in turn, requests that the video content be transmitted from the CDN.
As is further known to those skilled in the art, it is often desirable to enforce logic rules for distribution of video content which may impact a user's experience. For example, it may be desirable to allow a user to view requested video content for a predetermined amount of time, such as 120 seconds, before then being required to view advertising or other alternative content. Also, it may be desirable to inhibit a user's ability to skip such alternative content if the user has already viewed a predetermined amount of the requested video content, or conversely, allow the user to skip the alternative content if the user has not viewed the predetermined amount of requested video content. Also, it may be desirable to allow a user to skip the alternative content if the user is seeking to go back and replay a previously viewed portion of the requested video content.
However, these logic rules for distribution of video content can be complex to implement and enforce, particularly given the variety of possible configurations that exist for video players. As a result, there is a need to improve the implementation of such logic rules across the widest variety of video players possible.